package com.healthyeating.manage.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.healthyeating.common.annotation.Excel;
import com.healthyeating.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 运动打卡对象 tb_sport
 * 
 * @author 段奇乐
 * @date 2025-03-19
 */
public class Sport extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 运动打卡id，主键递增 */
    private Long sportId;

    /** 运动名称 */
    @Excel(name = "运动名称")
    private String sportName;

    /** 运动时长 */
    @Excel(name = "运动时长")
    private String sportDuration;

    /** 运动平均心率 */
    @Excel(name = "运动平均心率")
    private String heartRate;

    /** 血氧饱和度 */
    @Excel(name = "血氧饱和度")
    private String oxygenSaturation;

    /** 消耗卡路里 */
    @Excel(name = "消耗卡路里")
    private String sportCalorie;

    /** 运动步数 */
    @Excel(name = "运动步数")
    private String stepCount;

    /** 配速 */
    @Excel(name = "配速")
    private String sportPace;

    /** 运动距离 */
    @Excel(name = "运动距离")
    private String sportDistance;

    /** 有氧时长 */
    @Excel(name = "有氧时长")
    private String aerobicDuration;

    /** 无氧时长 */
    @Excel(name = "无氧时长")
    private String anaerobicDuration;

    /** 跳绳次数 */
    @Excel(name = "跳绳次数")
    private String jumpCount;

    /** 所属用户 */
    private Long userId;

    /** 运动类别 */
    private String sportType;

    public String getSportType() {
        return sportType;
    }

    public void setSportType(String sportType) {
        this.sportType = sportType;
    }

    public void setSportId(Long sportId)
    {
        this.sportId = sportId;
    }

    public Long getSportId() 
    {
        return sportId;
    }
    public void setSportName(String sportName) 
    {
        this.sportName = sportName;
    }

    public String getSportName() 
    {
        return sportName;
    }
    public void setSportDuration(String sportDuration) 
    {
        this.sportDuration = sportDuration;
    }

    public String getSportDuration() 
    {
        return sportDuration;
    }
    public void setHeartRate(String heartRate) 
    {
        this.heartRate = heartRate;
    }

    public String getHeartRate() 
    {
        return heartRate;
    }
    public void setOxygenSaturation(String oxygenSaturation) 
    {
        this.oxygenSaturation = oxygenSaturation;
    }

    public String getOxygenSaturation() 
    {
        return oxygenSaturation;
    }
    public void setSportCalorie(String sportCalorie) 
    {
        this.sportCalorie = sportCalorie;
    }

    public String getSportCalorie() 
    {
        return sportCalorie;
    }
    public void setStepCount(String stepCount) 
    {
        this.stepCount = stepCount;
    }

    public String getStepCount() 
    {
        return stepCount;
    }
    public void setSportPace(String sportPace) 
    {
        this.sportPace = sportPace;
    }

    public String getSportPace() 
    {
        return sportPace;
    }
    public void setSportDistance(String sportDistance) 
    {
        this.sportDistance = sportDistance;
    }

    public String getSportDistance() 
    {
        return sportDistance;
    }
    public void setAerobicDuration(String aerobicDuration) 
    {
        this.aerobicDuration = aerobicDuration;
    }

    public String getAerobicDuration() 
    {
        return aerobicDuration;
    }
    public void setAnaerobicDuration(String anaerobicDuration) 
    {
        this.anaerobicDuration = anaerobicDuration;
    }

    public String getAnaerobicDuration() 
    {
        return anaerobicDuration;
    }
    public void setJumpCount(String jumpCount) 
    {
        this.jumpCount = jumpCount;
    }

    public String getJumpCount() 
    {
        return jumpCount;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    // 额外的属性
    /** 当前天起始时间 */
    private Date startOfDay;

    /** 当前天结束时间 */
    private Date endOfDay;

    public Date getEndOfDay() {
        return endOfDay;
    }

    public void setEndOfDay(Date endOfDay) {
        this.endOfDay = endOfDay;
    }

    public Date getStartOfDay() {
        return startOfDay;
    }

    public void setStartOfDay(Date startOfDay) {
        this.startOfDay = startOfDay;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("sportId", getSportId())
            .append("sportName", getSportName())
            .append("sportDuration", getSportDuration())
            .append("heartRate", getHeartRate())
            .append("oxygenSaturation", getOxygenSaturation())
            .append("sportCalorie", getSportCalorie())
            .append("stepCount", getStepCount())
            .append("sportPace", getSportPace())
            .append("sportDistance", getSportDistance())
            .append("aerobicDuration", getAerobicDuration())
            .append("anaerobicDuration", getAnaerobicDuration())
            .append("jumpCount", getJumpCount())
            .append("createTime", getCreateTime())
            .append("remark", getRemark())
            .append("userId", getUserId())
            .append("sportType", getSportType())
            .toString();
    }
}
